#include "../common/common.h"
#include "calculateFeatures.h"
#include "../SVM/svmTrain.h"
#include "../SVM/svmClassify.h"
#include "visualVideo.h"
#include "../MEI/MEI.h"
#include "../K-means/k-means.h"
#include "../SIFT/sift.h"
#if !(defined __MAINPROGRAM_HEADER__)
#define __MAINPROGRAM_HEADER__ 

const std::string POSITIVE_PATH = "../../dataset/positive/" ;
const std::string NEGETIVE_PATH = "../../dataset/negetive/" ;
const std::string RECOGNITIVE_PATH = "../../dataset/recognitive/" ;

const std::string POSITIVE_STIP_PATH = "../calculateData/stipPointsFile/positiveSTIP/" ;
const std::string NEGETIVE_STIP_PATH = "../calculateData/stipPointsFile/negetiveSTIP/" ;
const std::string RECOGNITIVE_STIP_PATH = "../calculateData/stipPointsFile/recognitiveSTIP/" ;

const std::string POSITIVE_FEATURES_PATH = "../calculateData/featuresDataFile/positiveFeatures/" ;
const std::string NEGETIVE_FEATURES_PATH = "../calculateData/featuresDataFile/negetiveFeatures/" ;
const std::string RECOGNITIVE_FEATURES_PATH = "../calculateData/featuresDataFile/recognitiveFeatures/" ;

const std::string POSITIVE_HOG_FEATURES_PATH = POSITIVE_FEATURES_PATH + "hogFile/" ;
const std::string NEGETIVE_HOG_FEATURES_PATH = NEGETIVE_FEATURES_PATH + "hogFile/" ;
const std::string RECOGNITIVE_HOG_FEATURES_PATH = RECOGNITIVE_FEATURES_PATH+"hogFile/" ;

const std::string POSITIVE_FLOW_FEATURES_PATH = POSITIVE_FEATURES_PATH + "flowFile/" ;
const std::string NEGETIVE_FLOW_FEATURES_PATH = NEGETIVE_FEATURES_PATH + "flowFile/"  ;
const std::string RECOGNITIVE_FLOW_FEATURES_PATH = RECOGNITIVE_FEATURES_PATH + "flowFile/" ;

const std::string POSITIVE_MEI_FEATURES_PATH = POSITIVE_FEATURES_PATH + "mEIFile/" ;
const std::string NEGETIVE_MEI_FEATURES_PATH = NEGETIVE_FEATURES_PATH + "mEIFile/" ;
const std::string RECOGNITIVE_MEI_FEATURES_PATH = RECOGNITIVE_FEATURES_PATH + "mEIFile/" ;

const std::string POSITIVE_ALL_FEATURES_PATH = POSITIVE_FEATURES_PATH + "allFeature/" ;
const std::string NEGETIVE_ALL_FEATURES_PATH = NEGETIVE_FEATURES_PATH + "allFeature/" ;
const std::string RECOGNITIVE_ALL_FEATURES_PATH = RECOGNITIVE_FEATURES_PATH + "allFeature/" ;

const std::string POSITIVE_HISTOGRAM_PATH = POSITIVE_FEATURES_PATH + "histogram/" ;
const std::string NEGETIVE_HISTOGRAM_PATH = NEGETIVE_FEATURES_PATH + "histogram/" ;
const std::string RECOGNITIVE_HISTOGRAM_PATH = RECOGNITIVE_FEATURES_PATH + "histogram/" ;

const std::string SVM_MODEL_FILE = "../calculateData/svmModelFile/svm.model" ;
const std::string SVM_CONFIGURE_FILE = "../SVM/svm.config" ;
const std::string KMEANS_MODEL_FILE = "../calculateData/kmeansModelFile/kmeansModel" ;
const std::string RECOGNITIVE_RESULT_PATH = "../calculateData/recognitiveResultFile/" ;

const std::string SIFT_PATH = "../calculateData/sceneFeature/" ;
const std::string POSITIVE_SCENE_SIFT_FEATURE_PATH = SIFT_PATH + "positive/" ;
const std::string NEGETIVE_SCENE_SIFT_FEATURE_PATH = SIFT_PATH + "negetive/" ;
const std::string POSITIVE_SCENE_HISTOGRAM_PATH = SIFT_PATH + "positiveHistogram/" ;
const std::string NEGETIVE_SCENE_HISTOGRAM_PATH = SIFT_PATH + "negetiveHistogram/" ;
const std::string RECOGNITIVE_SCENE_TEMP_PATH = SIFT_PATH + "recognitiveFile/" ;
const std::string SIFT_IMAGE = "../../dataset/scene/" ;
const std::string POSITIVE_SCENE_IMAGE = SIFT_IMAGE + "positive/" ;
const std::string NEGETIVE_SCENE_IMAGE = SIFT_IMAGE + "negetive/" ;

const std::string SCENE_KMEANS_MODEL = "../calculateData/kmeansModelFile/sceneKmeansModel" ;
const std::string SCENE_SVM_MODEL = "../calculateData/svmModelFile/sceneSvm.model" ;
enum{
  _TRAIN = 0,
  _CLASSIFICATION
};

typedef struct 
{
  unsigned commandValue ;
  std::string fileName ; // 时给的是待识别视频的文件名
} CommandType ;

#endif 
